package edu.zqu.collegeField.project.po;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;

import java.math.BigInteger;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 场地
 * </p>
 *
 * @author 廖森
 * @since 2020-06-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "Field对象", description = "场地")
public class Field implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主id")
    @TableId(value = "id", type = IdType.AUTO)
    private BigInteger id;

    @ApiModelProperty(value = "学校id")
    private BigInteger collegeId;

    @ApiModelProperty(value = "场地名称")
    private String name;

    @ApiModelProperty(value = "场地英文名称")
    private String englishName;

    @ApiModelProperty(value = "场地类型id，关联到field_type.id")
    private Integer fieldTypeId;

    @ApiModelProperty(value = "校区id，关联到school.id")
    private BigInteger schoolId;

    @ApiModelProperty(value = "功能区id，关联到area.id")
    private BigInteger areaId;

    @ApiModelProperty(value = "楼层，有可能是负1层、负2层等等，所以不能用unsigned")
    private Integer floor;

    @ApiModelProperty(value = "房间号")
    private String room;

    @ApiModelProperty(value = "长度")
    private BigDecimal length;

    @ApiModelProperty(value = "宽度")
    private BigDecimal width;

    @ApiModelProperty(value = "高度")
    private BigDecimal height;

    @ApiModelProperty(value = "0室内，1室外，2... ")
    private Integer inOutDoor;

    @ApiModelProperty(value = "最大容纳人数")
    private Integer maxVolumn;

    @ApiModelProperty(value = "当前场地管理员")
    private BigInteger fieldManager;

    @ApiModelProperty(value = "当前防火负责人")
    private BigInteger firePreventionSupervisor;

    @ApiModelProperty(value = "当前安全负责人")
    private BigInteger safetyDirector;

    @ApiModelProperty(value = "当前部门负责人")
    private BigInteger divisionPrincipal;

    @ApiModelProperty(value = "描述")
    private String description;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "操作者")
    private BigInteger byWho;

    @ApiModelProperty(value = "本记录是否有效")
    @TableLogic
    private Boolean deleted;

    @ApiModelProperty(value = "历史版本")
    private BigInteger lastVersion;


}
